Add stacked toast notification component - #1359
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5cd9d1129d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
https://github.com/sqlpage/SQLPage/blob/20f13342362d1db74f16ac0db0ab122b9f1d1b1e/sqlpage.js#L402
Dispose hidden toast instances before removing their elements
When automatic, non-triggered toasts are hidden, removing the DOM node without calling the Bootstrap instance's dispose() leaves the element and instance registered in Bootstrap's internal component data map. Pages that render many toasts, especially through repeatedly loaded fragments, therefore retain every dismissed notification until navigation even though the nodes are no longer visible; dispose the instance before removing the element.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
abf80a8 to
4a19843
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4a198433be
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
4a19843 to
7addb7a
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7addb7a2c6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ce29643a97
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4d1ce5e24b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Motivation
Description
sqlpage/templates/toast.handlebarsthat renders a.toastelement withdata-pre-init="toast", supportstitle,description,description_md(Markdown takes precedence),icon,color,dismissible,duration,position,id, andclass, and usesicon_img/markdownhelpers and accessible attributes (role="status",aria-live="polite").sqlpage_toastinsqlpage/sqlpage.jsthat normalizes position, creates/uses position-fixed.toast-containerper placement, moves toasts into the shared container, normalizesduration, instantiates the framework toast (window.bootstrap || window.tabler.bootstrap), shows toasts, and removes generated containers when empty.examples/official-site/sqlpage/migrations/76_toast.sqlinserting thetoastcomponent, parameters, defaults, and multiple executable examples demonstrating stacking, Markdown, persistence, and alternate placement.tests/sql_test_files/component_rendering/toast.sqland a Playwright interaction spec addition intests/end-to-end/official-site.spec.tsto validate visibility, stacking, timed/persistent behavior, dismissal, escaped vs. Markdown rendering, and placement, and updateCHANGELOG.mdaccordingly.Testing
npm run formatcompleted successfully and formatted JS files as expected.sqlite3ran and validated the new migration, confirming component/parameter/example rows and JSON validity for examples.npx biome check/npm testwere executed for the modified frontend files; the checks completed but the repository-wide Biome run surfaced unrelated pre-existing diagnostics (missingparseIntradix instances and several style warnings) that are outside the scope of this change.cargo testwas attempted but could not complete in this environment because building nativelibsqlite3-syshit a Rust toolchain limitation (cfg_selectunstable feature); Playwright end-to-end tests were not executed because the official-site server could not be started due to that build issue.Codex Task